package com.lobov.entities;

import java.util.Date;

/**
 * Таймер - родительский класс для сущностей его цель обеспечение основных
 * методов возможностью сасекать время
 * 
 */
public class Timer implements TimerIface {

	private Date startDate;
	private Date endDate;

	@Override
	public void startTimer() throws Exception {
		if (startDate != null) {
			throw new Exception(
					"Таймер не обнулен, нужно снять старый показатель");
		}
		startDate = new Date();
	}

	@Override
	public long getTime() throws Exception {
		if (startDate == null) {
			throw new Exception("Таймер не был запущен");
		}
		if (endDate == null) {
			stopTimer();
		}
		long millseconds = endDate.getTime() - startDate.getTime();
		startDate = null;
		endDate = null;
		return millseconds;
	}

	@Override
	public void stopTimer() {
		endDate = new Date();
	}
}
